/*
Copyright 2007 Julian Asamer

This file is part of Fractalicious.

    Fractalicious is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Fractalicious is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Fractalicious.  If not, see <http://www.gnu.org/licenses/>.
*/

//This class calculates the fractal.

#import <Foundation/Foundation.h>
#import <CoreFoundation/CoreFoundation.h>
#import "FRecalcTypes.h"


@class DrawingData; //depreceated
@class Line2D;
@class DrawableFractal;

@interface FAlgorithm : NSObject
	{
		SEL _getStartLines;
		SEL _getTransformers;
		id dataSource;
		id delegate;
		//DrawingData *data;
		DrawableFractal *data;
		NSMutableArray *transformers;
		
		Line2D * sLine;
		int rec_count;
		int arr_count;
		float _exactness;
	}

		-(id) init;
		-(void) calculateFractal:(RecalcType) type;

	-(void) setStartingLinesSelector: (SEL)selector;
	-(void) setTransformatorsSelector: (SEL)selector;
	-(void) setDataSource: (id) object;
	-(void) setDelegate: (id) delegate;
	-(id) delegate;
	
/*	-(NSMutableArray *) getLines;
	-(NSMutableArray *) getTransformers;*/
@end